
/*-----------------------------------------------------------------------------\
|                          ChipCFlow Block2Code V1.0                           |
|                                                                              |
| Desenvolvedor: Felipe Simões Lage Gomes Duarte                               |
| Orientador: Prof. Dr. Jorge Luiz e Silva                                     |
| Supervisor: Bruno de Abreu Silva                                             |
|	      Joelmir José Lopes                                               |
|                                                                              |
| Main Project: ChipCflow                                                      |
| Período: Agosto de 2009 a Julho de 2010                                      |
| Codigo: Op_Operator.java                                                        |
| Versão da IDE: NetBeans IDE 6.8 (Build 200912041610)                         |
| Java: 1.6.0_18; Java HotSpot(TM) Client VM 16.0-b13                          |
| Sistema Operacional: Windows 7 versão 6.1 executando em x86; pt_BR           |
|                                                                              |
|             O presente trabalho foi realizado com apoio do CNPq              |
|   Conselho Nacional de Desenvolvimento Científico  e Tecnológico - Brasil    |
\-----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------\
|                          ChipCFlow Block2Code V2.0                           |
|                                                                              |
| Desenvolvedor: Felipe Simões Lage Gomes Duarte                               |
| Orientador: Prof. Dr. Jorge Luiz e Silva                                     |
|                                                                              |
| Main Project: ChipCflow                                                      |
| Período: Agosto de 2010 a Julho de 2011                                      |
| Codigo: Main.java                                                            |
| Versão da IDE: NetBeans IDE 6.9.1 (Build 201011082200)                       |
| Java: 1.6.0_21; Java HotSpot(TM) Client VM 17.0-b17                          |
| Sistema Operacional: Windows 7 versão 6.1 executando em x86; pt_BR (nb)      |
|                                                                              |
|             O presente trabalho foi realizado com apoio do CNPq              |
|   Conselho Nacional de Desenvolvimento Científico  e Tecnológico - Brasil    |
\-----------------------------------------------------------------------------*/

package components;//Nome do pacote de dados.

//declaraçao das classes importadas
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Point;

public class Op_Operator extends Operadores {

  /*----- Construtor da classe -----*/
  public Op_Operator() {
    super();
    this.bar.add(new Conector(Conector.IN, new Point(0,0)));
    this.bar.add(new Conector(Conector.IN, new Point(0,0)));
    this.bar.add(new Conector(Conector.OUT, new Point(0,0)));
  }

  @Override//sobrescrita
  //metodo para desenhar objeto
  public void desenha(Graphics2D g) {

    int x = this.getMx(),
            y = this.getMy();

    this.setCor(Color.CYAN);
    g.setColor(this.getCor());//Seta a cor para laranja
    g.setStroke(new BasicStroke(2));

    g.drawRect(x - 22, y - 15, 44, 30);

    g.drawLine(x, y + 15, x, y + 25);//desenha saida inferior
    g.drawLine(x - 12, y - 15, x - 22, y - 25);//desenha entrada superior esquerda
    g.drawLine(x + 12, y - 15, x + 22, y - 25);//desenha entrada superior direita
    
    bar.get(0).setCoordenada(x - 22, y - 25);
    bar.get(1).setCoordenada(x + 22, y - 25);
    bar.get(2).setCoordenada(x, y + 25);
  }

  @Override
  public boolean procuraForma(int X, int Y) {

    int x = this.getMx(),
            y = this.getMy();

    if ((X < (x + 22)) & (X > (x - 22)) & (Y < (y + 15)) & (Y > (y - 15))) {
      return true;
    }
    return false;
  }

  @Override
  public void updateBarName() {
    this.setOpName("Op" + Integer.toString(numInstancia) + "_Operator");
    numInstancia++;
  }
}
